本系列文章同步發布於筆者網站
上一篇我們介紹了兩個有強大廠商後盾的部屬工具,本偏要介紹大多為社群成員維護的部屬專案,OpenStack-Ansible, Kolla-Ansible, OpenStack-Helm
OpenStack-Ansible 就如其名,就是透過 Ansible 去部屬 OpenStack 的工具,其中支援非常多 OpenStack 元件以及不同的 Plugin。
OpenStack Ansible 主要透過 lxc container + Ansible-playbook 來安裝 OpenStack,其中有部分 service 並沒有放在 lxc container 中,如 nova-compute。
在 network plugin 的支援也是今天介紹的 3 個部屬工具中最多的,其中包含了在一些特殊環境下很好用的 Calico。
OpenStack Ansible 除了部屬 OpenStack 以外,同時也可以在部屬 OpenStack 儲存所需要使用的 Ceph,而其他專案如 Kolla-Ansible 的 Ceph cluster 就要額外自己部屬並且透過 config overwrite 去設定。
Kolla-Ansible 是本次系列文章所選用的部屬工具,跟 OpenStack-Ansible 一樣,Kolla-Ansible 也是透過 Ansible playbook 來部屬 OpenStack。
Kolla-Ansible 和 OpenStack-Ansible 不同的點在於,Kolla-Ansible 是使用 Kolla 專案所建立的 container 直接部屬,而 OpenStack-Ansible 是利用 Ansible-Playbook 在 lxc container 內進行安裝和設定。這也就是為什麼 Kolla-Ansible 在部屬的速度上會比 OpenStack-Ansible 快的許多,因為只要把 container image pull 下來設定檔塞進去就差不多完成了,不需要在一個一個重新安裝,已經把安裝套件的時間在 build container images 的時候使用掉了。
這也是為什麼這次系列文會使用 Kolla-Ansible 的原因。其安裝快速,設定檔就一個非常容易就可以架設出一個 full scale 的 OpenStack Cluster。
OpenStack-Helm,顧名思義就是透過 Helm chart 來部屬 OpenStack,而既然是透過 Helm chart,也代表著將 OpenStack 部屬在 Kubernetes 之上,透過 Kubernetes 來管理各個 OpenStack 元件。
雖說實際上有社群使用者將 OpenStack-Helm 使用在生產環境上,但是其實 OpenStack-Helm 並還沒有一個實際的 stable release,如果有讀者想使用的話會建議是同時了解 Kubernetes 跟 OpenStack 的使用者。
而將 OpenStack 部屬在 Kubernetes 之上雖然有可以利用 Kubernetes 做 self-healing 和其他好處,但是筆者認為這卻同時也帶來了更高的複雜度,系統管理者在了解 OpenStack 的同時還需要了解 Kubernetes 以及 Helm,這其實在除錯上帶來了很大的難度。
以上三個部屬 OpenStack 的方式皆為比較偏向社群成員維護的工具。使用上筆者會推薦 Kolla-Ansible。在下一篇我們會開始介紹 Kolla-Ansible 以及如何透過 Kolla-Ansible 部屬一個 all-in-one 跟高可用性的 OpenStack 集群。